home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
UTILITY
/
FDATE68A.ARJ
/
FDATEX.BAT
< prev
next >
Wrap
DOS Batch File
|
1992-07-30
|
26KB
|
758 lines
@ECHO off
BREAK ON
if not (%1)==() goto %1
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ FDATEX: Demonstration batch file for FDATE ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
echo.
echo.
echo This batch file uses ANSI.SYS to control the appearance and color
echo of some of the headings.
echo.
echo If you do not have ANSI.SYS installed, you may see garbage on the
echo screen next to some of the headings, such as the one at the top of
echo this screen, but the batch file will work correctly otherwise.
echo.
echo.
echo.
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ The first thing we will do is to test the HELP screen. ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
PAUSE
cls
FDATE
PAUSE
ECHO ON
@echo off
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (#1) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /Atoday /Occyy
FDATE /Ff /At /Occyymm
FDATE /Ff /At /Occyymmdd
FDATE /Ff /At /Oyymmdd
FDATE /Ff /At /Ommdd
@echo off
@PAUSE
@echo off
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (#1b) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /At /Odd
FDATE /Ff /At /Ozd
FDATE /Ff /At /Odd-mn3-yy
FDATE /Ff /At /Odd-mn3-yy /Lfr
FDATE /Ff /At /Odd-mn3-yy /Lsp
@echo off
@PAUSE
@echo off
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (#1c) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /At /Oddmn3yy
FDATE /Ff /At /Oyy
@echo off
@PAUSE
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (#2) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /Omm-dd-ccyy
FDATE /Ff /Ozm-zd-ccyy
FDATE /Ff /Omm/dd/ccyy
FDATE /Ff /Ozm/zd/ccyy
@echo off
PAUSE
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (BRITISH) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /Odd.mm.ccyy
FDATE /Ff /Ozd.zm.ccyy
FDATE /Ff /Odd.mm.yy
FDATE /Ff /Ozd.zm.yy
@echo off
PAUSE
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (#3) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /At /Odow#
FDATE /Ff /At /Odow
FDATE /Ff /At /Odow3
FDATE /Ff /At /Odow /Lfr
FDATE /Ff /At /Odow3 /Lfr
FDATE /Ff /At /Odow3 /Lsp
@echo off
PAUSE
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (#4) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /At /O"mn zd, ccyy"
FDATE /Ff /At /O"mn3 dd ccyy"
FDATE /Ff /At /O"mn3 dd, ccyy"
FDATE /Ff /At /O"mn zd, ccyy" /Lfr
FDATE /Ff /At /O"mn zd, ccyy" /Lsp
FDATE /Ff /At /O"mn3 dd ccyy" /Lfr
FDATE /Ff /At /O"mn3 dd, ccyy" /Lfr
@echo off
PAUSE
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (#5) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /At /O"zd mn ccyy"
FDATE /Ff /At /O"zd mn, ccyy"
FDATE /Ff /At /O"zd mn ccyy" /Lfr
FDATE /Ff /At /O"zd mn, ccyy" /Lfr
@echo off
PAUSE
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (#6) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
Fdate /Ff /Occyy-mm-dd
Fdate /Ff /Occyy/mm/dd
Fdate /Ff /Occyy.mm.dd
Fdate /Ff /Oyy-mm-dd
Fdate /Ff /Oyy/mm/dd
Fdate /Ff /Oyy.mm.dd
@echo off
PAUSE
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (TIME) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /At /Ot1
FDATE /Ff /At /Ohh:mm
FDATE /Ff /At /Ohh:mm:ss
@echo off
PAUSE
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (DATE ABBREVIATIONS) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff
FDATE /Ff /Ofull
FDATE /Ff /Lfr
FDATE /Ff /Ofull /Lfr
FDATE /Ff /Ofull /Lsp
FDATE /Ff /Oly /P"Leap-year flag is: " /S" [0=normal, 1=leapyear]"
@echo off
PAUSE
:julian
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS ("JULIAN" OUTPUTS) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /Oday# /P"Absolute date : "
FDATE /Ff /Ominute# /P"Julian minutes: "
FDATE /Ff /Osecond# /P"Julian seconds: "
@pause
@cls
FDATE /Ff /Occyyjjj /P"Julian date is: "
FDATE /Ff /Oyyjjj /P"Julian date is: "
FDATE /Ff /Ojjj /P"Julian date is: "
FDATE /Ff /Ozzj /P"Julian date is: "
FDATE /Ff /Ojulian /P"Julian date is: "
@echo off
PAUSE
:IN
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST INPUT FORMATS ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
echo.
@echo TEST PSEUDO-DATES /AT (/ATODAY)
@echo ─────────────────────────────────────────────────────────────────
@echo on
FDATE /Ff /Atoday
FDATE /Ff /At
@Pause
cls
@ECHO TEST PSEUDO-DATES /ICCYYMMDD
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /Atttt1126 /Iccyymmdd
FDATE /Ff /A1991tt26 /Iccyymmdd
FDATE /Ff /A199211tt /Iccyymmdd
FDATE /Ff /Atttttttt /Iccyymmdd
@Pause
cls
@ECHO TEST PSEUDO-DATES
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /A11-26-tttt
FDATE /Ff /A11-tt-1992
FDATE /Ff /Att-26-1992
FDATE /Ff /Att-tt-tttt
@Pause
cls
@ECHO TEST PSEUDO-DATES /IMM-DD-YY
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /A11-26-tt /Imm-dd-yy
FDATE /Ff /A11-tt-92 /Imm-dd-yy
FDATE /Ff /Att-26-92 /Imm-dd-yy
FDATE /Ff /Att-tt-tt /Imm-dd-yy
@PAUSE
CLS
@echo TEST INPUT FORMATS
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /Imm-dd-ccyy /A12-07-1991
FDATE /Ff /Imm-dd-yy /A12-07-91
FDATE /Ff /Iccyymmdd /A19911207
@PAUSE
CLS
@echo TEST INPUT FORMATS (British/European)
@echo ─────────────────────────────────────────────────────────────────
Fdate /Ff /Idd-mm-yy /A2/5/92
Fdate /Ff /Idd-mm-yy /A2/5/10
Fdate /Ff /Idd-mm-yy /A12/12/10
Fdate /Ff /Idd-mm-ccyy /A2/5/1992
Fdate /Ff /Idd-mm-ccyy /A12/5/1992
Fdate /Ff /Idd-mm-ccyy /A2/05/1992
Fdate /Ff /Idd-mm-ccyy /A12/05/1992
@PAUSE
CLS
@echo TEST INPUT FORMATS (/If ... GET INPUT DATE/TIME FROM A FILE)
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /If /Afdatex.bat /P"The date on file FDATEX.BAT is: "
FDATE /Ff /If /Afdatex.bat /P"The time on file FDATEX.BAT is: " /Ohh:mm:ss
FDATE /Ff /If /Afdatex.bat /P"FDATEX.BAT was last updated at " /Ofull
@PAUSE
:JJJ
CLS
@echo ON
@echo TEST JULIAN INPUT FORMATS
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /Iccyyjjj /A1992045
FDATE /Ff /Iccyyjjj /Atttt045
FDATE /Ff /Iyyjjj /A92045
FDATE /Ff /Iyyjjj /Att045
FDATE /Ff /Iyyjjj /A92366
FDATE /Ff /Iyyjjj /A93366
@PAUSE
CLS
@echo TEST JULIAN INPUT FORMATS
@echo ─────────────────────────────────────────────────────────────────
Fdate /Ff /Iyyjjj /Att-1
Fdate /Ff /Iyyjjj /Att0
Fdate /Ff /Iyyjjj /Att+1
Fdate /Ff /Iyyjjj /Att-999
Fdate /Ff /Iyyjjj /Att1000
@PAUSE
@echo OFF
CLS
@echo TEST INPUT FORMATS (only YY specified, CC assumed.)
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /Imm-dd-yy /A12-07-00
FDATE /Ff /Imm-dd-yy /A12-07-10
FDATE /Ff /Imm-dd-yy /A12-07-19
FDATE /Ff /Imm-dd-yy /A12-07-20
FDATE /Ff /Imm-dd-yy /A12-07-21
FDATE /Ff /Imm-dd-yy /A12-07-91
@PAUSE
CLS
@echo off
@echo TEST INPUT FORMATS HANDLING LEADING ZEROS
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /Imm-dd-yy /A06-06-66
FDATE /Ff /Imm-dd-yy /A6-06-66
FDATE /Ff /Imm-dd-yy /A06-6-66
FDATE /Ff /Imm-dd-yy /A6-6-66
FDATE /Ff /A06-06-0001
FDATE /Ff /A6-06-0001
FDATE /Ff /A06-6-0001
FDATE /Ff /A6-6-0001
@PAUSE
@echo on
CLS
@echo TEST /P (PREFIX) PARAMETER
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /At /O"mn zd, ccyy" /P"Today is "
FDATE /Ff /At /O"mn zd, ccyy" /P"Aujourdui est " /Lfr
FDATE /Ff /At /O"mn zd, ccyy" /P"Hoy es " /Lsp
@echo.
@set FDATE=
FDATE /Ff /At /O"mn zd, ccyy" /P"@SET FDATE=" >FDATJUNK.BAT
@Echo off
call FDATJUNK.BAT
del FDATJUNK.BAT
ECHO Value of FDATE environment variable is: %FDATE%
set FDATE=
PAUSE
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST END-OF-MONTH DATES (BUG FIXED IN FDATE 3.0) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo off
fdate /Ff /A01-29-1992
fdate /Ff /A01-30-1992
fdate /Ff /A01-31-1992
fdate /Ff /A02-29-1992
fdate /Ff /A02-30-1992
fdate /Ff /A02-31-1992
@echo off
PAUSE
:func
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST FUNCTIONS ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
@echo.
@echo TEST FUNCTION: F (FORMAT)
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fformat /Atoday
FDATE /Ff /At
FDATE /Ff
@PAUSE
@echo off
CLS
@echo TEST FUNCTION: W (Nth WEEKDAY BEFORE/AFTER) WHERE /D NOT = DOW#
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fw /A11-25-1992 /D5 /N-2 /P"2nd Thursday before 11-25-1992: "
FDATE /Fw /A11-25-1992 /D5 /N-1 /P"1st Thursday before 11-25-1992: "
FDATE /Ff /A11-25-1992 /D5 /N-1 /P"The actual day of.. 11-25-1992: "
FDATE /Fw /A11-25-1992 /D5 /N1 /P"1st Thursday after 11-25-1992: "
FDATE /Fw /A11-25-1992 /D5 /N2 /P"2nd Thursday after 11-25-1992: "
@PAUSE
@CLS
@echo TEST FUNCTION: W (Nth WEEKDAY BEFORE/AFTER) WHERE /D = DOW#
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fw /A11-26-1992 /D5 /N-2 /P"2nd Thursday before 11-26-1992: "
FDATE /Fw /A11-26-1992 /D5 /N-1 /P"1st Thursday before 11-26-1992: "
FDATE /Ff /A11-26-1992 /D5 /N-1 /P"The actual day of.. 11-26-1992: "
FDATE /Fw /A11-26-1992 /D5 /N1 /P"1st Thursday after 11-26-1992: "
FDATE /Fw /A11-26-1992 /D5 /N2 /P"2nd Thursday after 11-26-1992: "
@PAUSE
@echo off
@CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST /FW-RELATED ERROR MESSAGES ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
FDATE /Fw /A11-26-1992 /D5 /N0 /P" 0th Thursday after 11-26-1992: "
FDATE /Fw /A11-26-1992 /D5 /N100 /P"99th Thursday after 11-26-1992: "
FDATE /Fw /A11-26-1992 /D5 /N-100 /P"99th Thursday before 11-26-1992: "
@PAUSE
:comp
CLS
@echo TEST COMP (DATE COMPARE) FUNCTION and default
@echo ─────────────────────────────────────────────────────────────────
@echo ON
Fdate /Fcomp /A06-06-1992 /B06-06-1991
Fdate /Fcomp /A06-06-1992 /B06-06-1992
Fdate /Fcomp /A06-06-1992 /B06-06-1993
Fdate /Fcomp
@PAUSE
CLS
@echo TEST TCOMP (TIME COMPARE) FUNCTION and default
@echo ─────────────────────────────────────────────────────────────────
@echo ON
Fdate /FTcomp
@ECHO XXXX>JUNKTEMP.BAT
Fdate /FTcomp /If /Ajunktemp.bat /Bfdatex.bat
Fdate /FTcomp /If /Bjunktemp.bat /Afdatex.bat
Fdate /FTcomp /If /Afdatex.bat /Bfdatex.bat
@del JUNKTEMP.BAT
@PAUSE
CLS
@echo TEST DIF (DATE DIFFERENCE, IN DAYS) FUNCTION
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fdif /At /Bt
FDATE /Fdif
FDATE /Fdif /At /B01-01-1990
FDATE /Fdif /A01-01-1990 /Bt
FDATE /Fdif /A12-31-0008 /B01-01-0009
FDATE /Fdif /Iccyymmdd /A19801230 /B19801231
FDATE /Fdif /Iccyymmdd /A19801230 /B19801220
@PAUSE
CLS
@echo TEST DIF (DATE DIFFERENCE, IN DAYS) FUNCTION
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fdif /Iccyymmdd /A19800101 /B19801231
FDATE /Fdif /Iccyymmdd /A19810101 /B19811231
FDATE /Fdif /Iccyymmdd /A20000101 /B20001231
FDATE /Fdif /Iccyymmdd /A19000101 /B19001231
FDATE /Fdif /Iccyymmdd /A16000101 /B16001231
@PAUSE
@echo off
CLS
echo TEST ADD (ADD A NUMBER TO A DATE, GET RESULTING DATE) FUNCTION
echo ───────────────────────────────────────────────────────────────────────────────
echo on
FDATE /Fadd /N1 /A12-31-0008 /Omm-dd-ccyy
FDATE /Fadd /N1 /At /Od1 /P"Tomorrow will be "
FDATE /Fadd /N90 /At /Od1 /P"90 days from today is "
@PAUSE
CLS
@echo TEST ADD ACROSS YEAR BOUNDARIES: LEAP YEAR BEGIN
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fadd /N1 /A12-31-0003
FDATE /Fadd /N1 /A12-31-0099
FDATE /Fadd /N1 /A12-31-0399
FDATE /Fadd /N1 /A12-31-1899
FDATE /Fadd /N1 /A12-31-1999
@PAUSE
CLS
@echo TEST ADD ACROSS YEAR BOUNDARIES: LEAP YEAR END
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fadd /N1 /A12-31-0004
FDATE /Fadd /N1 /A12-31-0100
FDATE /Fadd /N1 /A12-31-0400
FDATE /Fadd /N1 /A12-31-1900
FDATE /Fadd /N1 /A12-31-2000
@PAUSE
CLS
@echo TEST SUB
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fsub /N1 /A12-31-0008
FDATE /Fsub /N1 /At /Od1 /P"Yesterday was "
FDATE /Fsub /N90 /At /Od1 /P"90 days ago, the date was "
@PAUSE
CLS
@echo TEST SUB ACROSS YEAR BOUNDARIES: 1 DAY BEFORE LEAP YEAR BEGIN
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fsub /N1 /A12-31-0004
FDATE /Fsub /N1 /A12-31-0100
FDATE /Fsub /N1 /A12-31-0400
FDATE /Fsub /N1 /A12-31-1900
FDATE /Fsub /N1 /A12-31-2000
@PAUSE
CLS
@echo TEST SUB ACROSS YEAR BOUNDARIES: LEAP YEAR BEGIN
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fsub /N1 /A01-01-0004
FDATE /Fsub /N1 /A01-01-0100
FDATE /Fsub /N1 /A01-01-0400
FDATE /Fsub /N1 /A01-01-1900
FDATE /Fsub /N1 /A01-01-2000
@PAUSE
CLS
@echo TEST SUB ACROSS YEAR BOUNDARIES: 1 DAY AFTER LEAP YEAR END
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fsub /N1 /A01-01-0005
FDATE /Fsub /N1 /A01-01-0101
FDATE /Fsub /N1 /A01-01-0401
FDATE /Fsub /N1 /A01-01-1901
FDATE /Fsub /N1 /A01-01-2001
@PAUSE
:errmsg
CLS
@echo TEST ERROR MESSAGES
@echo ─────────────────────────────────────────────────────────────────
@echo on
FDATE /Ff /At /Ojunktest
FDATE /Ff /A18880101 /Ijunktest /Ominute#
@PAUSE
CLS
FDATE /Ff /Iccyymmdd /A18880101 /Ominute#
FDATE /Ff /Iccyymmdd /A21010101 /Osecond#
FDATE /Fsub /Iccyymmdd /A00010101 /n1 /od1
FDATE /Fadd /Iccyymmdd /A99991231 /n1 /od1
@PAUSE
CLS
FDATE /Ff /A01-01-xxxx
FDATE /Fadd /A01-01-1992 /N
@PAUSE
CLS
FDATE /Fdif /?01-01-1992 /B01-02-1992
FDATE /Fdif /A01-01-1992 /?01-02-1992
@PAUSE
CLS
FDATE /Ff /Imm-dd-yy /A01-01-1
FDATE /Ff /Imm-dd-yy /A01-01-199
FDATE /Ff /A01-01-199
FDATE /Ff /A01-01-19922
@PAUSE
:LY
CLS
@echo on
@echo TEST LEAPYR (#1)
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /A01-01-0001 /Oly
FDATE /Ff /A01-01-0004 /Oly
FDATE /Ff /A01-01-0005 /Oly
FDATE /Ff /A01-01-0100 /Oly
FDATE /Ff /A01-01-0400 /Oly
FDATE /Ff /A01-01-1600 /Oly
@PAUSE
CLS
@echo TEST LEAPYR (#2)
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /A01-01-1900 /Oly
FDATE /Ff /A01-01-1984 /Oly
FDATE /Ff /A01-01-1991 /Oly
FDATE /Ff /A01-01-1992 /Oly
FDATE /Ff /A01-01-2000 /Oly
@PAUSE
CLS
@echo TEST "JULIAN" OUTPUT FORMATS
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /At /Ojulian
FDATE /Ff /At /Oday#
FDATE /Ff /At /Ominute#
FDATE /Ff /At /Osecond#
FDATE /Ff /A19950101 /Iccyymmdd /Ominute#
FDATE /Ff /A19950101 /Iccyymmdd /Osecond#
@PAUSE
@ECHO off
:ABSDATES
CLS
echo SHOW ABSOLUTE OR "TRUE JULIAN" DATES FOR SELECTED DATES
echo ─────────────────────────────────────────────────────────────────
ECHO.
FDATE /Ff /A01-01-0001 /P"First day of year 0001: " /Oday#
ECHO.
FDATE /Ff /A01-01-1900 /P"First day of year 1900: " /Oday#
ECHO.
FDATE /Ff /A01-01-1992 /P"First day of year 1992: " /Oday#
ECHO.
FDATE /Ff /At /P"Today's calendar date : "
FDATE /Ff /At /Oday# /P"Today's absolute date : "
ECHO.
FDATE /Ff /A12-31-2000 /P"Last day of year 2000: " /Oday#
ECHO.
FDATE /Ff /A12-31-9999 /P"Last day of year 9999: " /Oday#
PAUSE
:GET
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST FDATE WITH ENVIRONMENT MANIPULATION PROGRAM: GET ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ If you do not have GET installed, ║
echo
║ you will see messages saying "Bad command of file name". ║
echo
║ This is normal and nothing to worry about. ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo.
@echo on
@set date1=
@echo.
FDATE /Ff /At /Oyymmdd|GET ZE /Vdate1 >NUL
@echo DATE1 environment variable is %DATE1%
@set date1=
@echo.
FDATE /Ff /At /Occyymmdd|GET ZE /Vdate1 >NUL
@echo DATE1 environment variable is %DATE1%
@set date1=
@echo off
@PAUSE
:STRINGS
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST FDATE WITH ENVIRONMENT MANIPULATION PROGRAM: STRINGS ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ If you do not have STRINGS installed, ║
echo
║ you will see messages saying "Bad command of file name". ║
echo
║ This is normal and nothing to worry about. ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo.
@echo on
@set date1=
@echo.
FDATE /Ff /At /Oyymmdd | STRINGS date1= ASK >NUL
@echo DATE1 environment variable is %DATE1%
@set date1=
@echo.
FDATE /Ff /At /Occyymmdd | STRINGS date1= ASK >NUL
@echo DATE1 environment variable is %DATE1%
@set date1=
@echo.
@echo off
@PAUSE
@echo off
CLS
echo.
echo The final demonstration uses the DOS "CALL" statement,
echo so it requires DOS 3.3 or greater.
echo.
echo If you do not have DOS 3.3+,
echo press Control-Break or Control-C now to stop execution of the batch file.
echo.
echo Otherwise,
pause
:TIMER
@echo off
cls
ECHO The demo will run for 1 - 60 seconds.
echo.
ECHO ────────────────────────────────────────────────────────────────────────
ECHO CALCULATE HOW LONG IT TOOK TO RUN A PROGRAM (in seconds and minutes)
echo.
echo If you leave long batch files to run overnight, this techique can
echo be used to record how long each program in the batch file ran.
echo.
echo The technique for setting the values of environment variables in this
echo part of the demo uses temporary batch files and CALL statements.
echo If you have a program such as GET or STRINGS, you can use it instead.
ECHO ────────────────────────────────────────────────────────────────────────
echo.
PAUSE
cls
FDATE /Ff /At /Ohh:mm:ss /P"TESTPGM simulated execution begins at "
REM GET PROGRAM BEGIN TIME, IN MINUTES
@set BegM=
@set EndM=
@set RunM=
FDATE /Ff /At /Ominute# /P"SET BegM=" >FDATJUNK.BAT
CALL FDATJUNK.BAT
REM GET PROGRAM BEGIN TIME, IN SECONDS
set BegS=
set EndS=
set RunS=
FDATE /Ff /At /Osecond# /P"SET BegS=" >FDATJUNK.BAT
CALL FDATJUNK.BAT
rem ───────────────────────────────────────────────────────────────
rem [simulate execution of a program: loop for a minute or less]
rem [In a real batch file, you would put your program statements here]
rem ───────────────────────────────────────────────────────────────
:BegLoop
FDATE /Ff /At /Osecond# /P"SET EndS=" >FDATJUNK.BAT
CALL FDATJUNK.BAT
FDATE /Ff /At /Ominute# /P"SET EndM=" >FDATJUNK.BAT
CALL FDATJUNK.BAT
rem calculate run time (difference between start time and end time)
FDATE /F#dif /A%EndM% /B%BegM% /P"SET RunM=" > FDATJUNK.BAT
CALL FDATJUNK.BAT
rem calculate run time (difference between start time and end time)
FDATE /F#dif /A%EndS% /B%BegS% /P"SET RunS=" > FDATJUNK.BAT
CALL FDATJUNK.BAT
echo TESTPGM running, elapsed time: %RunS% seconds
if (%RunM%)==() goto EndLoop
if (%RunM%)==(0) goto BegLoop
:EndLoop
rem ───────────────────────────────────────────────────────────────
REM GET PROGRAM END TIME IN SECONDS
FDATE /Ff /At /Osecond# /P"SET EndS=" > FDATJUNK.BAT
CALL FDATJUNK.BAT
REM GET PROGRAM END TIME IN MINUTES
FDATE /Ff /At /Ominute# /P"SET EndM=" > FDATJUNK.BAT
CALL FDATJUNK.BAT
FDATE /Ff /At /Ohh:mm:ss /P"TESTPGM simulated execution ends at "
echo.
echo TESTPGM: Program end time (Julian seconds): %EndS%
echo TESTPGM: Program begin time (Julian seconds): %BegS%
rem calculate run time (difference between start time and end time)
FDATE /F#dif /A%EndS% /B%BegS% /P"TESTPGM: Run time in seconds= "
set BegS=
set EndS=
echo.
echo TESTPGM: Program end time (Julian minutes): %EndM%
echo TESTPGM: Program begin time (Julian minutes): %BegM%
rem calculate run time (difference between start time and end time)
FDATE /F#dif /A%EndM% /B%BegM% /P"TESTPGM: Run time in minutes= "
DEL FDATJUNK.BAT
set BegM=
set EndM=
set RunM=
set RunS=
echo.
PAUSE
cls
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ END OF FDATE TEST BATCH FILE ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
echo.
echo I hope that you have found this demo batch file helpful,
echo and that you will find FDATE useful.
echo.
echo -- Stephen Ferg
echo.
echo.
echo.
if not exist holidays.bat goto endit
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ READY TO EXECUTE HOLIDAYS.BAT ... DEMO BATCH FILE ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
pause
HOLIDAYS.BAT
:ENDIT